/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package br.com.agi.myhome;

import br.com.agi.myhome.dominio.DominioException;
import br.com.agi.myhome.servicos.CadastradorProduto;
import br.com.agi.myhome.util.BeanUtil;
import br.com.agi.myhome.util.FacesMsg;
import java.io.Serializable;
import java.util.logging.Level;
import java.util.logging.Logger;
import javax.annotation.PostConstruct;
import javax.ejb.EJB;
import javax.enterprise.context.Conversation;
import javax.enterprise.context.ConversationScoped;
import javax.enterprise.context.RequestScoped;
import javax.inject.Inject;
import javax.inject.Named;

/**
 *
 * @author Renato
 */
@Named
@ConversationScoped
public class ConsumidorProduto  implements Serializable{
    
   @Inject 
   private FormularioEstoque formularioEstoque;
   
   @Inject
   private BeanUtil beanUtil;
   
   @EJB 
   private CadastradorProduto cadastradorProduto;
   
   @Inject
   private Conversation conversation;
   
    @Inject
    private ControladorProduto controladorProduto;
   
   @PostConstruct
   public void iniciarPagina(){
       
   }
   
   private void iniciarConversacao(){
       if(!conversation.isTransient()){
           conversation.end();
       }
       conversation.begin();
   }
   
    public String buscarProdutos(){
        this.iniciarConversacao();
        formularioEstoque.setCadastradorProduto(cadastradorProduto);
        formularioEstoque.montarLista(); 
        if(formularioEstoque.getEstoque().isEmpty()){
            controladorProduto.apresentarConsumo();
            formularioEstoque.iniciarPagina();
            beanUtil.registrarFalha("registro_nao_encontrado");
        }else{
            controladorProduto.apresentarCamposConsumo();
        }
        return "";
    }
    
    public String consumir(){        
        try {
            this.cadastradorProduto.removerEstoque(formularioEstoque.getEstoqueProduto());
            beanUtil.registrarSucesso("consumo");
        } catch (DominioException ex) {
            beanUtil.registrarFalha(ex);
            ex.getMessage();
        }
        return "";
    }
    
    
}
